//实现一种算法，找出单向链表中倒数第 k 个节点。返回该节点的值。 
//
// 注意：本题相对原题稍作改动 
//
// 示例： 
//
// 输入： 1->2->3->4->5 和 k = 2
//输出： 4 
//
// 说明： 
//
// 给定的 k 保证是有效的。 
//
// Related Topics 链表 双指针 👍 148 👎 0


package LeetCode.editor.cn;


/**
 * @author ldltd
 * @date 2025-06-17 16:32:22
 * @description 面试题 02.02.返回倒数第 k 个节点
 
 */
 
public class KthNodeFromEndOfListLcci {
    public static void main(String[] args) {
    //测试代码
    KthNodeFromEndOfListLcci fun = new KthNodeFromEndOfListLcci();
    Solution solution= fun.new Solution();
    
    }

//leetcode submit region begin(Prohibit modification and deletion)

//  Definition for singly-linked list.
  public class ListNode {
      int val;
      ListNode next;
      ListNode() {}
      ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }

class Solution {
    public int kthToLast(ListNode head, int k) {
        ListNode slow=head,fast=head;
        while (k-->0){
            fast=fast.next;
        }
        while (fast!=null){
            fast=fast.next;
            slow=slow.next;
        }
        return slow.val;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
